package net.easyjava.third.letv.util;

import net.easyjava.third.letv.api.LetvApiClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * Created by ivan on 15/4/28.
 */
@Deprecated
public class LetvLiveSource {
	private static final Logger logger = LoggerFactory.getLogger(LetvLiveSource.class);
	protected static LetvApiClient letvApiClient;
	private static String ver = "3.0";

	public static void setup() {
		if (letvApiClient == null) {
			letvApiClient = LetvApiClient.getInstance();
			letvApiClient.setApiUrl("http://api.open.letvcloud.com/live/execute");// http://api.live.lecloud.com/execute");
			letvApiClient.setHttpPort(80);
			letvApiClient.setUserid("151457");
			letvApiClient.setSecret("249ce738ccbcdc78c787c25118e377df");
			try {
				letvApiClient.initialize();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public LetvLiveSource() {
		setup();
		// if(parameter.containsKey("sign")){
		// parameter.remove("sign");
		// }
	}

//	public VideoLiveInfo getLiveUrl(VideoLiveInfo liveInfo, String streamId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("streamId", streamId);
//		try {
//			HttpResponse rtmpresponse = letvApiClient.executeGet(
//					"letv.rtmp.stream.liveurl.get", ver, params);
//			if (rtmpresponse.getStatusLine().getStatusCode() != 200) {
//				System.out.println(rtmpresponse.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(rtmpresponse));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(rtmpresponse);
//				net.sf.json.JSONObject rtmpplayUrl = net.sf.json.JSONObject.fromObject(rtmpcontent);
//				liveInfo.setRtmp(rtmpplayUrl.getString("liveurl"));
//				//liveInfo.setRtmp("");
//			}
//
//			params.put("outputProtocol", "2");
//			HttpResponse hlsresponse = letvApiClient.executeGet(
//					"letv.rtmp.stream.liveurl.get", ver, params);
//			if (hlsresponse.getStatusLine().getStatusCode() != 200) {
//				System.out.println(hlsresponse.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(hlsresponse));
//			} else {
//				String hlscontent = LetvApiUtil.getResponseBody(hlsresponse);
//				net.sf.json.JSONObject hlsplayUrl = net.sf.json.JSONObject.fromObject(hlscontent);
//				String hlssource = hlsplayUrl.getString("liveurl");
//				if(hlssource.indexOf("r.gslb.lecloud.com")>-1){
//					hlssource = hlssource.replace("r.gslb.lecloud.com","live.coop.gslb.letv.com")+"?stream_id="+streamId+"&platid=10&splatid=1029";
//				}
//				liveInfo.setHls(hlssource);
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return liveInfo;
//	}
//
//	/**
//	 * 创建直播活动
//	 */
//	public LetvActivity createLetvActivity(String activityName, long startTime, long endTime, int liveNum,
//										   int neededPushAuth) {
//		Map<String, String> params = new HashMap<String, String>();
//		String beginTime = DateUtils.format(startTime, DateUtils.DATETIME_FORMAT);
//		String endtime = DateUtils.format(endTime, DateUtils.DATETIME_FORMAT);
//		LetvActivity letvActivity = new LetvActivity(activityName, beginTime, endtime, liveNum);
//		params.put("activityName", letvActivity.getActivityName());
//		params.put("startTime", letvActivity.getStartTime());
//		params.put("endTime", letvActivity.getEndTime());
//		params.put("liveNum", letvActivity.getLiveNum() + "");
//		params.put("codeRateTypes", letvActivity.getCodeRateTypes());
//		params.put("needRecord", letvActivity.getNeedRecord() + "");
//		params.put("needTimeShift", letvActivity.getNeedTimeShift() + "");
//		params.put("needFullView", letvActivity.getNeedFullView() + "");
//		params.put("activityCategory", letvActivity.getActivityCategory());
//		params.put("playMode", letvActivity.getPlayMode() + "");
//		// String json =
//		// com.alibaba.fastjson.JSONObject.toJSONString(letvActivity);
//		// params = (Map<String, Object>)
//		// com.alibaba.fastjson.JSONObject.parse(json);
//		LetvActivity letvActivity1 = null;
//		try {
//			HttpResponse response = letvApiClient.executePost("letv.cloudlive.activity.create", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				JSONObject result = JSONObject.parseObject(rtmpcontent);
//				String activityId = result.getString("activityId");
//
//				Map<String, String> params1 = new HashMap<String, String>();
//				params1.put("activityId", activityId);
//				params1.put("neededPushAuth", "0");
//				params1.put("needIpWhiteList", "0");
//				params1.put("needPlayerDomainWhiteList", "0");
//				try {
//					HttpResponse response1 = letvApiClient.executePost("letv.cloudlive.activity.sercurity.config", ver,
//							params1);
//					if (response1.getStatusLine().getStatusCode() != 200) {
//						System.out.println(response1.getStatusLine().getStatusCode());
//						System.out.println(LetvApiUtil.getResponseBody(response1));
//					}
//				} catch (IOException e) {
//					e.printStackTrace();
//				}
//
//				letvActivity.setActivityId(activityId);
//				// letvActivity1.setActivityId(activityId);
//				// if(neededPushAuth ==0){
//				// letvActivity.setActivityId(activityId);
//				// letvActivity.setNeededPushAuth(neededPushAuth);
//				// letvActivity1 = updateActivityConfig(letvActivity);
//				// }else{
//				// letvActivity1 = getActivity(activityId);
//				// }
//				letvActivity1 = getActivity(activityId);
//			}
//		} catch (IOException e) {
//			logger.error("in letv create activity error", e);
//			e.printStackTrace();
//		}
//		return letvActivity1;
//	}
//
//	/**
//	 * 查询活动详情
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public LetvActivity getActivity(String activityId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		LetvActivity letvActivity = null;
//		try {
//			HttpResponse response = letvApiClient.executeGet("letv.cloudlive.activity.search", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				List<LetvActivity> list = JSONArray.parseArray(rtmpcontent, LetvActivity.class);
//				if (list != null || list.size() > 0) {
//					letvActivity = list.get(0);
//				}
//				letvActivity.setLives(getPushUrl(activityId));
//				// letvActivity.setVideos(getVideos(activityId));
//				System.out.println("get activityId info to letv letvActivity = " + letvActivity.toString());
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return letvActivity;
//	}
//
//	/**
//	 * 获取活动播放地址
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public String getActivityLiveUrl(String activityId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		String url = null;
//		try {
//			HttpResponse response = letvApiClient.executeGet("letv.cloudlive.activity.playerpage.getUrl", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				JSONObject jsonObject = JSONObject.parseObject(rtmpcontent);
//				url = jsonObject.getString("playPageUrl");
//				System.out.println("url = " + url);
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return url;
//	}
//
//	/**
//	 * 获取机位推流地址等信息
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public List<LetvPushUrl> getPushUrl(String activityId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		List<LetvPushUrl> lives = null;
//		try {
//			HttpResponse response = letvApiClient.executeGet("letv.cloudlive.activity.getPushUrl", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				JSONObject jsonObject = JSONObject.parseObject(rtmpcontent);
//				JSONArray array = jsonObject.getJSONArray("lives");
//				lives = JSONArray.parseArray(array.toJSONString(), LetvPushUrl.class);
//
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return lives;
//	}
//
//	/**
//	 * 获取创建打点录制任务接口
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public static String createRecTask(String liveId, String startTime, String endTime) {
//		String taskId = "";
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("liveId", liveId);
//		params.put("startTime", startTime);
//		params.put("endTime", endTime);
//		try {
//			HttpResponse response = letvApiClient.executePost("lecloud.cloudlive.rec.createRecTask", "3.1", params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				taskId = rtmpcontent;
//
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return taskId;
//	}
//
//	/**
//	 * 通过activityId获取liveId
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public static List<String> searchActivityStreamInfo(String activityId) {
//		List<String> liveIds = new ArrayList<String>();
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		try {
//			HttpResponse response = letvApiClient.executeGet("lecloud.cloudlive.vrs.activity.streaminfo.search", "3.1",
//					params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				JSONObject jsonObject = JSONObject.parseObject(rtmpcontent);
//				JSONArray array = jsonObject.getJSONArray("lives");
//				for (int i = 0; i < array.size(); i++) {
//					String liveId = array.getJSONObject(i).getString("liveId");
//					liveIds.add(liveId);
//				}
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return liveIds;
//	}
//
//	/**
//	 * 打点录制结果查询接口
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public static List<LetvActivityVideo> searchRecResult(String liveId, String taskId) {
//		List<LetvActivityVideo> videos = new ArrayList<LetvActivityVideo>();
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("liveId", liveId);
//		params.put("taskId", taskId);
//		try {
//			HttpResponse response = letvApiClient.executeGet("lecloud.cloudlive.rec.searchResult", "3.1", params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				JSONObject jsonObject = JSONObject.parseObject(rtmpcontent);
//				JSONArray array = jsonObject.getJSONArray("rows");
//				videos = JSONArray.parseArray(array.toJSONString(), LetvActivityVideo.class);
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return videos;
//	}
//
//	/**
//	 * 获取录制视频信息
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public static List<LetvActivityVideo> getVideos(String activityId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		List<LetvActivityVideo> videos = null;
//		try {
//			HttpResponse response = letvApiClient.executeGet("letv.cloudlive.activity.getPlayInfo", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				String rtmpcontent = LetvApiUtil.getResponseBody(response);
//				System.out.println(rtmpcontent);
//				JSONObject jsonObject = JSONObject.parseObject(rtmpcontent);
//				JSONArray array = jsonObject.getJSONArray("machineInfo");
//				videos = JSONArray.parseArray(array.toJSONString(), LetvActivityVideo.class);
//				System.out.println(videos.toString());
//
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return videos;
//	}
//
//	/**
//	 * 结束活动
//	 *
//	 * @param activityId
//	 * @return
//	 */
//	public boolean stopActivity(String activityId) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", activityId);
//		String url = null;
//		boolean flag = false;
//		try {
//			HttpResponse response = letvApiClient.executePost("letv.cloudlive.activity.stop", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				flag = true;
//			}
//		} catch (IOException e) {
//			System.out.println("activityId[" + activityId + "] letv stop error");
//			e.printStackTrace();
//		}
//		return flag;
//	}
//
//	/**
//	 * 修改活动
//	 *
//	 * @param letvActivity
//	 * @return
//	 */
//	public LetvActivity updateActivity(LetvActivity letvActivity) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", letvActivity.getActivityId());
//		if (letvActivity.getLiveNum() != 0) {
//			params.put("liveNum", letvActivity.getLiveNum() + "");
//		}
//		if (letvActivity.getActivityName() != null && !"".equalsIgnoreCase(letvActivity.getActivityName())) {
//			params.put("activityName", letvActivity.getActivityName());
//		}
//		if (letvActivity.getStartTime() != null && !"".equalsIgnoreCase(letvActivity.getStartTime())) {
//			params.put("startTime", letvActivity.getStartTime());
//		}
//		if (letvActivity.getEndTime() != null && !"".equalsIgnoreCase(letvActivity.getEndTime())) {
//			params.put("endTime", letvActivity.getEndTime());
//		}
//		LetvActivity letv = null;
//		try {
//			HttpResponse response = letvApiClient.executePost("letv.cloudlive.activity.modify", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				letv = getActivity(letvActivity.getActivityId());
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return letv;
//	}
//
//	/**
//	 * 修改活动安全配置
//	 *
//	 * @param letvActivity
//	 * @return
//	 */
//	public LetvActivity updateActivityConfig(LetvActivity letvActivity) {
//		Map<String, String> params = new HashMap<String, String>();
//		params.put("activityId", letvActivity.getActivityId());
//		if (letvActivity.getNeededPushAuth() != 0) {
//			params.put("neededPushAuth", letvActivity.getNeededPushAuth() + "");
//		}
//		LetvActivity letv = null;
//		try {
//			HttpResponse response = letvApiClient.executePost("letv.cloudlive.activity.sercurity.config", ver, params);
//			if (response.getStatusLine().getStatusCode() != 200) {
//				System.out.println(response.getStatusLine().getStatusCode());
//				System.out.println(LetvApiUtil.getResponseBody(response));
//			} else {
//				letv = getActivity(letvActivity.getActivityId());
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return letv;
//	}
//	public static void main(String args[]){
//		LetvLiveSource ll = new LetvLiveSource();
//		//{"liveId":"20160413300000019","taskId":"667176"}
//		//{"liveId":"201603173000002ax","taskId":"0"}
//		//ll.searchRecResult("20160413300000419", "667176");
//		System.out.println(ll.searchRecResult("201603173000002ax", "0").size());
//	}
}
